package com.csist.jobtitleevaluation.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.csist.jobtitleevaluation.mapper.ApplicantMapper;
import com.csist.jobtitleevaluation.po.Applicant;
import com.csist.jobtitleevaluation.util.JwtUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import org.springframework.stereotype.Controller;

import java.util.HashMap;

/**
 * <p>
 * 申请用户表 前端控制器
 * </p>
 *
 * @author chun
 * @since 2021-11-30
 */
@Controller
@RequestMapping("/applicant")
public class ApplicantController {

    @Autowired
    private ApplicantMapper applicantMapper;

    /**
     * 申报人注册
     *
     * @param applicant 申报人对象
     * @return
     */
    @PostMapping("/register")
    @ResponseBody
    public String register(@RequestBody Applicant applicant) {
        // 判断传递过来的数据是否为空
        if (applicant == null) return null;
        QueryWrapper<Applicant> wrapper = new QueryWrapper<>();
        // 判断当前手机号是否存在
        wrapper.eq("phone", applicant.getPhone());
        if (applicantMapper.selectCount(wrapper) != 0) return "手机号存在";
        // 判断数据库是否成功添加数据
        return applicantMapper.insert(applicant) > 0 ? "ok" : "no";
        // 进行注册
    }

    /**
     * 申报人登录验证
     *
     * @param applicant
     * @return
     */
    @PostMapping("/login")
    @ResponseBody
    public String login(@RequestBody Applicant applicant) {
        // 判断传递过来的数据是否为空
        if (applicant == null) return null;

        HashMap<String, Object> map = new HashMap<>();
        map.put("phone", applicant.getPhone());
        map.put("password", applicant.getPassword());

        // 查询该账号是否存在
        if (applicantMapper.selectByMap(map) != null) {
            // 如果存在就返回token
            return JwtUtil.createToken();
        }
        // 不存在则返回空值
        return null;
    }


    /**
     * 路由跳转token验证
     *
     * @param token
     * @return
     */
    @GetMapping("/checkToken")
    public Boolean checkToken(@RequestBody String token) {
        return JwtUtil.checkToken(token);
    }


    /**
     * 忘记密码-验证身份
     *
     * @param phone 手机号
     * @return
     */
    @PostMapping("/wangjimimaYzsf")
    public Boolean wangjimimaYzsf(@RequestBody String phone) {
        // 判断传递过来的数据是否为空
        if (phone == null) return null;

        QueryWrapper<Applicant> wrapper = new QueryWrapper<>();
        // 查询手机号是否存在
        wrapper.eq("phone", phone);
        // 手机号存在返回true，不存在返回false
        return applicantMapper.selectCount(wrapper) == 1 ? true : false;
    }

    /**
     * 忘记密码-确认账号（暂未完成）
     *
     * @return
     */
    @PostMapping("/wangjimimaQrzh")
    public Boolean wangjimimaQrzh() {
        return false;
    }

    /**
     * 忘记密码-重置密码（暂未完成）
     *
     * @return
     */
    @PostMapping("/wangjimimaCzmm")
    public Boolean wangjimimaCzmm() {
        return false;
    }


}
